﻿namespace FrameworkCore.Modules;

#nullable disable

/// <summary>
/// 静态编译的“单例”类，用于在应用程序域的整个生命周期中存储对象。
/// 虽然不完全符合单例模式的意义，但作为存储单一实例的标准化方式。
/// </summary>
/// <typeparam name="T">要存储的对象的类型。</typeparam>
/// <remarks>对实例的访问未进行同步。</remarks>
public partial class Singleton<T> : BaseSingleton
{
    private static T _instance;

    /// <summary>
    /// 指定类型 T 的单例实例。每种类型 T 只有一个实例（当前）。
    /// </summary>
    public static T Instance
    {
        get => _instance;
        set
        {
            _instance = value;
            AllSingletons[typeof(T)] = value;
        }
    }
}